#ifndef _WX_COMBOBOX_H_BASE_
#define _WX_COMBOBOX_H_BASE_

#include "wx/defs.h"

extern const wxChar wxComboBoxNameStr[];

#include "wx/textctrl.h"
#include "wx/ctrlsub.h"

class wxComboBoxBase : public wxItemContainer {
  public:
    virtual wxString GetValue() const = 0;
    virtual void SetValue( const wxString& value ) = 0;
    virtual void Copy() = 0;
    virtual void Cut() = 0;
    virtual void Paste() = 0;
    virtual void SetInsertionPoint( long pos ) = 0;
    virtual long GetInsertionPoint() const = 0;
    virtual wxTextPos GetLastPosition() const = 0;
    virtual void Replace( long from, long to, const wxString& value ) = 0;
    virtual void SetSelection( long from, long to ) = 0;
    virtual void SetEditable( bool editable ) = 0;
    virtual void SetInsertionPointEnd() { SetInsertionPoint( GetLastPosition() ); }
    virtual void Remove( long from, long to ) { Replace( from, to, wxEmptyString ); }
    virtual bool IsEditable() const = 0;
    virtual void Undo() = 0;
    virtual void Redo() = 0;
    virtual void SelectAll() = 0;
    virtual bool CanCopy() const = 0;
    virtual bool CanCut() const = 0;
    virtual bool CanPaste() const = 0;
    virtual bool CanUndo() const = 0;
    virtual bool CanRedo() const = 0;
    virtual int GetCurrentSelection() const { return GetSelection(); }
    virtual void SetSelection( int n ) = 0;
};

#include "wx/gtk/combobox.h"

#endif
